package com.yixin.hospital.entity.dto.req.guidance;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yixin.hospital.entity.bo.TemplateDetail;
import com.yixin.hospital.entity.domain.PatientAddress;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@ApiModel("新增导诊请求体")
public class GuidanceAddReqDTO {

    @ApiModelProperty(value = "id", example = "1")
    private Long id;

    @ApiModelProperty(value = "患者id", example = "1")
    @NotNull(message = "患者id不能为空")
    private Long patientId;

    @ApiModelProperty(value = "就诊类型（1-店面 2-邮寄 3-代取 4-代放）", example = "1")
    @NotNull(message = "就诊类型不能为空")
    private Integer type;

    @ApiModelProperty(value = "部门id", example = "1")
    @NotNull(message = "部门id不能为空")
    private Long deptId;

    @ApiModelProperty(value = "就诊医生id", example = "1")
    @NotNull(message = "就诊医生id不能为空")
    private Long doctorId;

    @ApiModelProperty(value = "科室id", example = "1")
    @NotNull(message = "科室id不能为空")
    private Long jobOfficeId;

    @ApiModelProperty(value = "科室id", example = "1")
    private Long templateId;

    @ApiModelProperty(value = "就诊地点id", example = "1")
//    @NotNull(message = "就诊地点id不能为空")
    private Long workAddressId;

    @ApiModelProperty(value = "候诊时间", example = "1")
//    @NotNull(message = "候诊时间不能为空")
    private Integer waitTime;

    @ApiModelProperty(value = "挂号费", example = "10.00")
    @NotNull(message = "挂号费不能为空")
    private BigDecimal registerPrice;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "模板详情")
    private List<TemplateDetail> templateDetailList;

    @ApiModelProperty(value = "地址id", example = "1")
    private PatientAddress address;

    @ApiModelProperty(value = "导诊时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date guidanceTime;

    @ApiModelProperty(value = "就诊时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date visitTime;

    @ApiModelProperty(value = "缴费时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    @ApiModelProperty(value = "取药时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date drugTime;

    @ApiModelProperty(value = "邮寄结束时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date postEndTime;

    @ApiModelProperty(value = "提醒时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date warnTime;

    @ApiModelProperty(value = "代放时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date subTakeTime;

    @ApiModelProperty(value = "代取时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date subReleaseTime;
}
